package com.example.tourism.service;


import com.example.tourism.pojo.Result;
import com.example.tourism.pojo.vo.req.LoginReqVo;
import com.example.tourism.pojo.vo.req.RegisterReqVo;
import com.example.tourism.pojo.vo.req.UserInfoReqVo;
import com.example.tourism.pojo.vo.res.DoubleTokenResVo;
import com.example.tourism.pojo.vo.res.UserInfoResVo;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public  interface UserService {

     Result<String> register(RegisterReqVo registerReqVo);

     Result<String> sendVerifyCode(String email);

     Result<String> checkVerifyCode(String email, String code);

     Result<DoubleTokenResVo> login(LoginReqVo loginReqVo, HttpServletResponse response);

     Result<String> refreshToken(String refreshToken, HttpServletResponse response);

     Result<UserInfoResVo> getUserInfo(HttpServletRequest request);

     Result updateUserInfo(UserInfoReqVo user, HttpServletRequest request);

     Result updateUserAvatar(String id,String avatarUrl);

     Result getUserAllInfo(String id);
}
